package org.hard.model.create.builder;

import org.hard.model.create.builder.product.Car;
import org.hard.model.create.builder.product.Manual;

/**
 * @author: 王林博
 * @date: 2023年02月10日 15:31
 */
//客户端代码会创建生成器对象并将其传递给主管，然后执行构造过程。最终结果将需要从生成器对象中获取。
public class Application {

    public static void main(String[] args) {
        Director director = new Director();

        CarBuilder builder = new CarBuilder();
        director.constructSportsCar(builder);
        final Car product = builder.getProduct();
        System.out.println(product.getStr());

        CarManualBuilder builderManual = new CarManualBuilder();
        director.constructSportsCar(builderManual);
        //最终产品通常需要从生成器对象中获取，因为主管不知晓具体生成器和产品的存在，也不会对其产生依赖
        Manual manual = builderManual.getProduct();
        System.out.println(manual.getStr());
    }


}
